module.exports = function(grunt){
	
	//@note 工具函数
	var isArray = function(arr){
		return Object.prototype.toString.call(arr) === '[object Array]' ;
	} ;
	
	//@note 生产环境根目录
	var proUrl = 'public/pro/' ;
	
	//@note js开发环境根目录
	var devUrl = {'js':'public/js/','css':'public/css/'} ;	
	
	//@note 获取需要监听的文件
	var getWatchFile = function(fileJson){
		var files = [] ;
		for(var i in devUrl){
			var json = fileJson[i] ;
			for(var j in json){
				
				files = files.concat(json[j]);
			}
		}
		return files ;
		
	} ;
	
	//@note 修正json中的路径
	var fileJson = (function(){
		var json = grunt.file.readJSON('biz.json');
		var result = {} ;
		
		for(var i in devUrl){
			var url = devUrl[i];
			var obj = json[i] ;	
			result[i] = {} ;
			for(var j in obj){	
				result[i][proUrl+j] = [] ;
				for( var n = 0 ; n < obj[j].length ; n++ ){
					result[i][proUrl+j].push(url+obj[j][n]);
				}				
			}
		}
		return result ;		
				
	})() ;
	var watchFiles =  getWatchFile(fileJson) ;
	
	grunt.initConfig({
		pkg : grunt.file.readJSON('package.json') ,
		uglify : {
			js : {
				files : fileJson.js
			}
		} ,
		concat : {
			css : {
				files : fileJson.css
			}
		} ,
		watch : {
			files : watchFiles ,
			tasks : [ 'uglify' , 'concat' ]
		}
	}) ;
	
	// 加载提供"uglify"任务的插件
	grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-css');
	grunt.loadNpmTasks('grunt-contrib-watch');
	grunt.loadNpmTasks('grunt-contrib-uglify');
	
	grunt.registerTask('dev',['uglify','watch','concat']) ;
    grunt.registerTask('all',['uglify','concat']) ;
} ;